package com.eastfair.imaster.vo;

import cn.afterturn.easypoi.excel.annotation.Excel;
import com.baomidou.mybatisplus.annotation.TableField;
import com.eastfair.annotation.annotation.vo.VoInfo;
import com.eastfair.auth.vo.RoleVo;
import com.eastfair.auth.vo.UserAccountVo;
import com.eastfair.jwt.model.AuthInfo;
import com.eastfair.projectcore.vo.FunctionVO;
import com.eastfair.projectcore.vo.MenuVO;
import com.eastfair.vo.VoGroupClass;
import com.fasterxml.jackson.annotation.JsonInclude;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.validation.constraints.Size;
import java.io.Serializable;
import java.util.List;

import static com.baomidou.mybatisplus.annotation.SqlCondition.LIKE;

/**
 * <p>
 * 实体类
 * 公司员工表
 * </p>
 *
 * @author ligang
 * @since 2021-08-28
 */
@Data
public class EmployeeVo implements Serializable {

    private static final long serialVersionUID = 1L;
    /**
     * 主键id
     */
    @ApiModelProperty(value = "主键id")
    @JsonInclude(JsonInclude.Include.NON_NULL)
    @VoInfo(groups = {VoGroupClass.all.class})
    private Long id;


    /**
     * 公司ID
     */
    @ApiModelProperty(value = "公司ID")
    @JsonInclude(JsonInclude.Include.NON_NULL)
    @VoInfo(groups = {VoGroupClass.all.class})
    private Long companyId;

    /**
     * 用户ID
     */
    @ApiModelProperty(value = "用户ID")
    @JsonInclude(JsonInclude.Include.NON_NULL)
    @VoInfo(groups = {VoGroupClass.all.class})
    private Long userAccountId;

    /**
     * 是否为管理员 1是 0否
     */
    @ApiModelProperty(value = "是否为管理员 1是 0否")
    @TableField(value = "is_admin")
    @Excel(name = "是否为管理员 1是 0否")
    @JsonInclude(JsonInclude.Include.NON_NULL)
    private Integer isAdmin;




    /**
     * 项目ID
     */
    @ApiModelProperty(value = "项目ID")
    @TableField(value = "project_id")
    @Excel(name = "项目ID")
    @JsonInclude(JsonInclude.Include.NON_NULL)
    @VoInfo(groups = {ImasterVoGroupClass.all.class})
    private Long projectId;


    /**
     * 职务
     */
    @ApiModelProperty(value = "职务")
    @Size(max = 255, message = "职务长度不能超过255")
    @TableField(value = "duty", condition = LIKE)
    @Excel(name = "职务")
    @JsonInclude(JsonInclude.Include.NON_NULL)
    @VoInfo(groups = {ImasterVoGroupClass.all.class})
    private String duty;

    /**
     * 部门
     */
    @ApiModelProperty(value = "部门")
    @Size(max = 255, message = "部门长度不能超过255")
    @TableField(value = "department", condition = LIKE)
    @Excel(name = "部门")
    @JsonInclude(JsonInclude.Include.NON_NULL)
//    @VoInfo(groups = {ImasterVoGroupClass.all.class})
    @VoInfo(groups = {ImasterVoGroupClass.exhibitorDetailOfReadOnly.class})
    private String department;

    /**
     * 英文职务
     */
    @ApiModelProperty(value = "英文职务")
    @Size(max = 255, message = "英文职务长度不能超过255")
    @TableField(value = "en_duty", condition = LIKE)
    @Excel(name = "英文职务")
    @JsonInclude(JsonInclude.Include.NON_NULL)
//    @VoInfo(groups = {ImasterVoGroupClass.all.class})
    @VoInfo(groups = {ImasterVoGroupClass.exhibitorDetailOfReadOnly.class})
    private String enDuty;

    /**
     * 名片url
     */
    @ApiModelProperty(value = "名片url")
    @Size(max = 255, message = "名片url长度不能超过255")
    @TableField(value = "business_card_url", condition = LIKE)
    @Excel(name = "名片url")
    @JsonInclude(JsonInclude.Include.NON_NULL)
    @VoInfo(groups = {ImasterVoGroupClass.all.class})
    private String businessCardUrl;


    /**
     * 姓名
     */
    @ApiModelProperty(value = "姓名")
    @JsonInclude(JsonInclude.Include.NON_NULL)
    @VoInfo(groups = {ImasterVoGroupClass.all.class})
    private String nickName;
    /**
     * 英文姓名
     */
    @ApiModelProperty(value = "英文姓名")
    @JsonInclude(JsonInclude.Include.NON_NULL)
    @VoInfo(groups = {ImasterVoGroupClass.all.class})
    private String enNickName;

    //用户Vo
    /**
     * 登录名
     */
    @ApiModelProperty(value = "登录名")
    @Size(max = 64, message = "姓名长度不能超过64")
    @TableField(value = "name", condition = LIKE)
    @Excel(name = "登录名")
    @VoInfo(groups = {ImasterVoGroupClass.all.class})
    private String name;

    /**
     * 手机区号
     */
    @ApiModelProperty(value = "手机区号")
    @Size(max = 64, message = "手机区号长度不能超过64")
    @TableField(value = "mobile_country_code", condition = LIKE)
    @Excel(name = "手机区号")
    @VoInfo(groups = {ImasterVoGroupClass.all.class})
    private String mobileCountryCode;

    /**
     * 手机号
     */
    @ApiModelProperty(value = "手机号")
    @Size(max = 16, message = "手机号长度不能超过16")
    @TableField(value = "mobile", condition = LIKE)
    @Excel(name = "手机号")
    @VoInfo(groups = {ImasterVoGroupClass.all.class})
    private String mobile;

    /**
     * 邮箱
     */
    @ApiModelProperty(value = "邮箱")
    @Size(max = 64, message = "邮箱长度不能超过64")
    @TableField(value = "email", condition = LIKE)
    @Excel(name = "邮箱")
    @VoInfo(groups = {ImasterVoGroupClass.all.class})
    private String email;


    /**
     * 头像
     */
    @ApiModelProperty(value = "头像")
    @Size(max = 255, message = "头像长度不能超过255")
    @TableField(value = "head_img", condition = LIKE)
    @Excel(name = "头像")
    @VoInfo(groups = {ImasterVoGroupClass.all.class})
    private String headImg;



}
